package se.kayarr.cardplay.gameplay;

import se.kayarr.cardplay.shared.ClampedValue;

public interface Targetable {
	public static final int NONE = 0;
	
	public static final int ALLY_PLAYER = 1;
	public static final int OPPONENT_PLAYER = 2;
	public static final int ALLY_UNIT = 4;
	public static final int OPPONENT_UNIT = 8;
	
	public static final int ANY_PLAYER = ALLY_PLAYER | OPPONENT_PLAYER;
	public static final int ANY_UNIT = ALLY_UNIT | OPPONENT_UNIT;
	public static final int ALLY_ANY = ALLY_UNIT | ALLY_PLAYER;
	public static final int OPPONENT_ANY = OPPONENT_UNIT | OPPONENT_PLAYER;
	
	public static final int ANY_ANY = ALLY_PLAYER | ALLY_UNIT | OPPONENT_PLAYER | OPPONENT_UNIT;
	
	public String getName();
	
	public ClampedValue getHealth();
	
	public int dealDamage(int damage);
	
	public int dealDamage(int damage, Type damageType);
}
